module myfuns
    use precision
	implicit none
!	interface to a function defined elsewhere
    interface
	    function manipulate4(x) 
	      use precision
	      real(adequate), intent(in):: x(:)
		  real(adequate) manipulate4(size(x))
	   end function manipulate4
	end interface

	contains
! a function that is part of this module
	function manipulate3(x) result(s)
	    use precision
		real(adequate) x(:)
		real(adequate) s

		s = sum(x)
    end function manipulate3
end module myfuns
